package com.itheima.health.dao;

import com.github.pagehelper.Page;
import com.itheima.health.pojo.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author likepei
 * @Date 2020/2/19 10:43
 * @Version v1.0
 * @Description 用户的持久层接口
 */
public interface UserDao {
    /**
     * 通过用户名 查询指定的用户信息
     * @param username
     * @return
     */
    User findByUsername(@Param("username") String username);

    /**
     * 用户分页查询数据
     * @param queryString
     * @return
     */
    Page<User> selectByCondition(@Param("queryString") String queryString);


    /**
     * 新增用户信息
     * @param user
     */
    void add(User user, Integer[] roleIds);

    /**
     * 根据id查询用户,回显
     * @param id
     * @return
     */
    Map<String,Object> findById(@Param("id") Integer id);

    /**
     * 编辑用户
     * @param user
     */
    void edit(User user);

    /**
     * 删除用户
     * @param id
     */
    void delete(@Param("id") Integer id);

    /**
     * 通过用户id去中间表查询该用户是否有关联的角色
     * @param id
     * @return
     */
    Long countUserById(@Param("userId") Integer id);

    void add(User user);

    void addUserAndRole(Map map);

    void deleteUserAndRole(Integer id);

    /**
     *  编辑角色-- 回显角色项中用户id关联的权限集合
     * @param id
     * @return
     */
    List<Integer> findRoleIdsByUserId(@Param("id") Integer id);
}
